
import { isObject } from '../shared/utils';
import { mutableHandler } from './mutableHandler';

export function reactive(target) {
  // 使用函数方式调用数据，拆分handler函数
  return createReactiveObject(target, mutableHandler);
}

function createReactiveObject(target, baseHandler) {
  if (!isObject(target)) return target;
  // 判断数据是否是对象 true时就返回一个新代理
  const observer = new Proxy(target, baseHandler);
  return observer;
}

// 使用proxy 方式处理数据
// const proxy = new Proxy(target, {
//   get(target, key) {
//     return Reflect.get(target, key);
//   },
//   set(target, key, value) {
//     return Reflect.set(target, key, value);
//   }
// })
